import pygame, os
from bomba import *


class Player:
	def __init__(self,dx,dy,tipo='Cherife'):
		self.tipo = tipo
		self.dx = dx
		self.dy = dy
		self.rect = pygame.Rect(dx,dy,30,30)
		self.status = 'VIVO'
		self.hora_da_morte = 0
		self.score = 0
		self.vidas = 3
		self.velocidade = 2
		self.quantidade_de_bombas = 1
		self.alcance_da_bomba = 1
		self.contador_para_mudar_sprite = 0
		self.lista_de_bombas_do_player = []
		self.player_imagem = pygame.image.load('imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'baixo4.png')
		self.imagem_direita = ['imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'direita1.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'direita2.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'direita3.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'direita4.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'direita5.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'direita6.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'direita7.png']
		self.imagem_esquerda = ['imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'esquerda1.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'esquerda2.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'esquerda3.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'esquerda4.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'esquerda5.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'esquerda6.png',
								'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'esquerda7.png']
		self.imagem_cima = ['imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'cima1.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'cima2.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'cima3.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'cima4.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'cima5.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'cima6.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'cima7.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'cima8.png']
		self.imagem_baixo = ['imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'baixo1.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'baixo2.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'baixo3.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'baixo4.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'baixo5.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'baixo6.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'baixo7.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'baixo8.png']
		self.imagem_morte = ['imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'morte1.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'morte2.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'morte3.png',
							'imagens' + os.sep + 'sprites' + os.sep + 'bomber' + os.sep + tipo + os.sep + 'morte4.png']
	def move(self,dx,dy):
		if dx <> 0:
			self.__move(dx,0)
			if dx > 0:
				self.muda_sprite('DIREITA')
			else:
				self.muda_sprite('ESQUERDA')
		if dy <> 0:
			if dy > 0:
				self.muda_sprite('BAIXO')
			else:
				self.muda_sprite('CIMA')
			self.__move(0,dy)
	def __move(self,dx,dy):
		self.rect.x += dx
		self.rect.y += dy
	def muda_sprite(self,direcao):
		if direcao == 'DIREITA':
			if self.contador_para_mudar_sprite < 8-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_direita[0])
			elif self.contador_para_mudar_sprite < 14-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_direita[1])
			elif self.contador_para_mudar_sprite < 20-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_direita[2])
			elif self.contador_para_mudar_sprite < 26-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_direita[3])
			elif self.contador_para_mudar_sprite < 32-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_direita[4])
			elif self.contador_para_mudar_sprite < 38-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_direita[5])
			elif self.contador_para_mudar_sprite < 44-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_direita[6])
			else:
				self.contador_para_mudar_sprite = 0
			self.contador_para_mudar_sprite += 1
		elif direcao == 'ESQUERDA':
			if self.contador_para_mudar_sprite < 8-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_esquerda[0])
			elif self.contador_para_mudar_sprite < 14-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_esquerda[1])
			elif self.contador_para_mudar_sprite < 20-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_esquerda[2])
			elif self.contador_para_mudar_sprite < 26-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_esquerda[3])
			elif self.contador_para_mudar_sprite < 32-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_esquerda[4])
			elif self.contador_para_mudar_sprite < 38-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_esquerda[5])
			elif self.contador_para_mudar_sprite < 44-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_esquerda[6])
			else:
				self.contador_para_mudar_sprite = 0
			self.contador_para_mudar_sprite += 1
		elif direcao == 'CIMA':
			if self.contador_para_mudar_sprite < 8-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_cima[0])
			elif self.contador_para_mudar_sprite < 14-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_cima[1])
			elif self.contador_para_mudar_sprite < 20-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_cima[2])
			elif self.contador_para_mudar_sprite < 26-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_cima[3])
			elif self.contador_para_mudar_sprite < 32-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_cima[4])
			elif self.contador_para_mudar_sprite < 38-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_cima[5])
			elif self.contador_para_mudar_sprite < 44-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_cima[6])
			elif self.contador_para_mudar_sprite < 50-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_cima[7])
			else:
				self.contador_para_mudar_sprite = 0
			self.contador_para_mudar_sprite += 1
		elif direcao == 'BAIXO':
			if self.contador_para_mudar_sprite < 8-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_baixo[0])
			elif self.contador_para_mudar_sprite < 14-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_baixo[1])
			elif self.contador_para_mudar_sprite < 20-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_baixo[2])
			elif self.contador_para_mudar_sprite < 26-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_baixo[3])
			elif self.contador_para_mudar_sprite < 32-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_baixo[4])
			elif self.contador_para_mudar_sprite < 38-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_baixo[5])
			elif self.contador_para_mudar_sprite < 44-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_baixo[6])
			elif self.contador_para_mudar_sprite < 50-self.velocidade:
				self.player_imagem = pygame.image.load(self.imagem_baixo[7])
			else:
				self.contador_para_mudar_sprite = 0
			self.contador_para_mudar_sprite += 1
	def soltar_boma(self,fase):
		dx = self.rect[0]
		dy = self.rect[1]
		rect_da_bomba = pygame.Rect(int((self.rect.x+12)/42)*42,int((self.rect.y+12)/42)*42,42,42)
		if self.quantidade_de_bombas > 0 and fase.mapa_de_movimentacao[int(dy/42)][int(dx/42)] == 'cam':
			self.quantidade_de_bombas -= 1
			fase.lista_de_bombas.append(Bomba(rect_da_bomba,self.alcance_da_bomba))
			self.lista_de_bombas_do_player.append(rect_da_bomba)
			fase.mapa_de_movimentacao[int((dy+12)/42)][int((dx+12)/42)] = 'B1'
